package com.project.service.imp;

import com.project.bean.UserBean;
import com.project.mapper.IUserMapper;
import com.project.service.IUserService;
import org.apache.ibatis.session.SqlSession;

import java.util.ArrayList;

public class UserServiceImp extends BaseService implements IUserService {

    @Override
    public UserBean login(String user, String password) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        UserBean userBean = mapper.login(user,password);
        return userBean;
    }

    @Override
    public ArrayList<UserBean> showAllUser() {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        ArrayList<UserBean> list = mapper.showAllUser();
        return list;
    }

    @Override
    public boolean addUser(UserBean userBean) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        String user = userBean.getUser();
        UserBean userBean1= mapper.userByUser(user);
        if(userBean1==null){
            mapper.addUser(userBean.getUser(),userBean.getName(),userBean.getGrade());
            session.commit();
            session.close();
            return true;
        }
        return false;
    }

    @Override
    public void delUser(Integer userId) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.delUser(userId);
        session.commit();
        session.close();
    }

    @Override
    public void updGradeById(Integer userId, String newGrade) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.updGrade(userId,newGrade);
        session.commit();
        session.close();
    }

    @Override
    public void updPasswordById(Integer userId, String newPassword) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.updPassword(userId,newPassword);
        session.commit();
        session.close();
    }

    @Override
    public UserBean userById(Integer userId) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        UserBean userBean =  mapper.userById(userId);
        session.close();
        return userBean;
    }
}
